#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Módulos 
import sys, gtk, pygame, utils, objetos
from pygame.locals import *

# Constantes

# Clases
# ---------------------------------------------------------------------
        
class Linea:
	def __init__(self,texto,posx,posy):
		self.text,self.rect = utils.textotls(texto, posx,posy,14,(0,0,0))

class LineaA:
	def __init__(self,texto,posx,posy):
		self.text,self.rect = utils.textotlb(texto, posx,posy,18,(255,0,0))
        
class Signo:
	def __init__(self,texto,posx,posy):
		self.text,self.rect = utils.textodream(texto, posx,posy,20,(255,0,0))

class Checkbox:
	def __init__(self,valor,posx,posy):
		self.X,self.rect = utils.textodream("+", posx,posy,20,(255,0,0))
		self.Y,self.rect = utils.textodream("-", posx,posy,20,(255,0,0))
		self.V,self.rect = utils.textodream(" ", posx,posy,20,(255,0,0))
		self.valor_correcto = valor
		self.valor = 0
		self.sonido = pygame.mixer.Sound("sounds/click.wav")
		self.sonido.set_volume(0.2)
	def display(self,screen):
		if self.valor == 1:
			screen.blit(self.X,self.rect)		
		elif self.valor == 2:
			screen.blit(self.Y,self.rect)	
		else:
			screen.blit(self.V,self.rect)	

# ---------------------------------------------------------------------
def dibujar(screen,cursor_picture, clock):
    salir = 0
    background_image = utils.load_image('images/fondo_4.jpg')
    btn_adelante = objetos.BotonAdelante()
    btn_atras = objetos.BotonAtras()
    
    
    clase, clase_rect = utils.texto_clase("Clase 4", 740*utils.RES, 30*utils.RES)
           
    titulo, titulo_rect = utils.texto_subtitulo_azul("La ciudad verde", 120*utils.RES, 60*utils.RES)
    
    frame = 0
    show_dialog = False
    img1 = utils.load_image('images/c4_5a.png')
    img2 = utils.load_image('images/c4_5b.png')
    img3 = utils.load_image('images/c4_5c.png')
    img4 = utils.load_image('images/c4_5d.png')
    img5 = utils.load_image('images/c4_5e.png')
    
    bloque1 = ( Linea('En la ciudad de Atyrá, la gente es muy activa. Los actores sociales se reunieron porque tienen muchas ganas de implementar un Plan', 400*utils.RES,60*utils.RES),
    Linea('Ambiental, pero no saben bien cómo. Prepararon una planilla de acciones para cada actor. Colocá en cada cuadro un signo    ,', 400*utils.RES,75*utils.RES),
    Linea('si creés que se trata de una acción positiva para el ambiente, o un signo    , si no lo es.', 400*utils.RES,90*utils.RES))
    mas = Signo("+", 728*utils.RES,73*utils.RES)
    menos = Signo("-", 560*utils.RES,90*utils.RES)
    
    bloquef = (LineaA("¡Excelente!, el Plan Ambiental",553*utils.RES,455*utils.RES),
    LineaA("ya está ahora corregido",528*utils.RES,470*utils.RES))
    
    check_list = (Checkbox(2,120*utils.RES,150*utils.RES),#ciudadano
    Checkbox(1,120*utils.RES,183*utils.RES),#ciudadano
    Checkbox(1,700*utils.RES,155*utils.RES),#empresa
    Checkbox(2,700*utils.RES,195*utils.RES),#empresa
    Checkbox(1,700*utils.RES,230*utils.RES),#empresa
    Checkbox(1,300*utils.RES,280*utils.RES),#gobierno
    Checkbox(2,300*utils.RES,308*utils.RES),#gobierno
    Checkbox(2,300*utils.RES,333*utils.RES),#gobierno
    Checkbox(2,120*utils.RES,407*utils.RES),#asociaciones
    Checkbox(1,120*utils.RES,435*utils.RES),#asociaciones
    Checkbox(2,120*utils.RES,462*utils.RES),#asociaciones
    Checkbox(1,698*utils.RES,380*utils.RES),#cientifico
    Checkbox(1,698*utils.RES,418*utils.RES))#cientifico
    
    while salir == 0:
    
    	# Pump GTK messages.sub
		while gtk.events_pending():
			gtk.main_iteration()
			
		for eventos in pygame.event.get():
			if eventos.type == QUIT:
				sys.exit(0)
			elif eventos.type == pygame.VIDEORESIZE:
			   pygame.display.set_mode(eventos.size, pygame.RESIZABLE)	
			elif eventos.type == MOUSEBUTTONDOWN:
				if btn_adelante.rect.collidepoint(pygame.mouse.get_pos()):
					salir = 6
					btn_adelante.sonido.play()	
				elif btn_atras.rect.collidepoint(pygame.mouse.get_pos()):
					salir = 4					
					btn_atras.sonido.play()	
				for checkbox in check_list:
					if checkbox.rect.collidepoint(pygame.mouse.get_pos()):
						checkbox.sonido.play()	
						if checkbox.valor == 1:
							checkbox.valor = 2
						else:
							checkbox.valor = 1
							

		# Realiza la animacion del texto
		final = True
		for checkbox in check_list:
			if checkbox.valor_correcto != checkbox.valor:
				final = False
		
		screen.blit(background_image, (0, 0))
		screen.blit(clase, clase_rect)
		screen.blit(img1, (40*utils.RES, 110*utils.RES))
		screen.blit(img2, (400*utils.RES, 90*utils.RES))
		screen.blit(img3, (230*utils.RES, 205*utils.RES))
		screen.blit(img4, (35*utils.RES, 350*utils.RES))
		screen.blit(img5, (420*utils.RES, 270*utils.RES))
		for texto in bloque1:
			screen.blit(texto.text,texto.rect)	
		screen.blit(mas.text,mas.rect)	
		screen.blit(menos.text,menos.rect)
		if final:
			for texto in bloquef:
				screen.blit(texto.text,texto.rect)	
		for checkbox in check_list:
			checkbox.display(screen)
		screen.blit(btn_adelante.image, btn_adelante.rect)
		screen.blit(btn_atras.image, btn_atras.rect)
		screen.blit(cursor_picture, pygame.mouse.get_pos())
		pygame.display.flip()

		# Try to stay at 30 FPS
		clock.tick(30)
		frame = frame + 1
                	 
    return salir

# This function is called when the game is run directly from the command line:
# ./TestGame.py 
def main():
	
	pygame.init()
	screen = pygame.display.set_mode((int(800*utils.RES), int(520*utils.RES)), pygame.RESIZABLE) #pygame.display.get_surface() #

	# Fake a Sugar cursor for the pyGame canvas area
	pygame.mouse.set_cursor((8,8),(0,0),(0,0,0,0,0,0,0,0),(0,0,0,0,0,0,0,0))
	cursor_picture = pygame.image.load('images/standardcursor.png')
	cursor_picture.convert_alpha() 
	clock = pygame.time.Clock()
	dibujar(screen,cursor_picture,clock)

if __name__ == '__main__':
   main()
